In real-life network applications there is a lot of information that is available to a user but hardly accessible, as the user doesn't know when the information is posted or when there is a change in the status of the posted content. Such information ideally needs to be “pushed” over the network to the user either periodically or when certain predefined events occur. Some examples of possible push situations are arrival of new e-mail, stock market information, multi-user game updates, etc. A push notification can be a Boolean value which informs the client device that a detailed response is available for retrieval from the web service. Alternatively, the push notification can return the updated data in response to an earlier submitted request message from the client device.
Web Services have become a ubiquitous standard for access to content resources as well as communicating to back-end servers. Their number and complexity have increased considerably in recent years. However, invoking Web Service operations from a wireless device using synchronous communication methods exclusively is considered expensive and impractical. Most Web Services employ protocols with a large footprint (e.g. SOAP) and are designed mostly for synchronous communication (“request/response” or “pull”) on wired networks. In a synchronous scenario, the client initiates the communication by sending a request to the server and waits to receive the response on the same connection. However, in the wireless space, where resources and bandwidth can be limited and data traffic cost can be high, synchronous communication is undesirable.
A common technique to deliver content to the wireless device is when the user of the device requests or “pulls” the content from the network. In other words, the content is constantly present in the network, but the user needs to issue retrieval request to access the information (e.g. using a browser on the mobile device). Current wireless systems operate by the wireless device repeatedly polling the server for data to satisfy the request. From a practical point of view, wireless communications can have higher cost than wired communications and usually are characterized by higher latency times, making a ‘pull’ from a wireless device inherently expensive. Slow connection times sometimes might be critical to the user's experience, such as extended wait times to process the request, including periodic loss of services connection during the wait time.